from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os

db = SQLAlchemy()
# 创建Flask应用实例
def create_app():
    app = Flask(__name__)

    # 配置数据库连接
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:12345678@localhost/sct'
    # 关闭对模型修改的追踪
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    # 创建SQLAlchemy实例并与Flask应用关联
    db.init_app(app)

    # 迁移相关的初始化可以在这里进行，但注意实际迁移操作应在命令行通过flask db命令执行

    with app.app_context():
        # 确保在应用上下文中导入模型和配置路由，以避免循环导入
        from project.models import Student
        from project.routes import configure_routes

        # 创建所有数据库表
        db.create_all()

        # 配置路由
        configure_routes(app)

    return app


# 确保在启动应用时调用create_app函数
if __name__ == '__main__':
    app = create_app()
    app.run(debug=True)
